package com.smalldragon.yml.system.service.dept;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.smalldragon.yml.system.dal.dept.DTO.DeptCreateDTO;
import com.smalldragon.yml.system.dal.dept.DTO.DeptUpdateDTO;
import com.smalldragon.yml.system.dal.dept.DeptDO;

import java.util.List;

/**
 * @author YMl
 */
public interface DeptService {

    /**
     * @Description 增加部门
     * @Author YML
     * @Date 2025/3/6
     */
    Boolean insertData(DeptCreateDTO createDTO);

    /**
     * @Description 修改部门
     * @Author YML
     * @Date 2025/3/6
     */
    Boolean updateData(DeptUpdateDTO updateDTO);

    /**
     * @Description 删除部门
     * @Author YML
     * @Date 2025/3/6
     */
     Boolean deleteData(List<String> ids);

    /**
     * @Description 部门列表
     * @Author YML
     * @Date 2025/3/6
     */
    List<DeptDO> list();

    /**
     * @Description 部门分页查询
     * @Author YML
     * @Date 2025/3/6
     */
    IPage<DeptDO> pageList();

    /**
     * @Description 获取部门信息
     * @Author YML
     * @Date 2025/3/3
     */
    DeptDO getInfoById(String id);


    /**
     * @Description 获取部门树
     * @Author YML
     * @Date 2025/4/25
     */
    List<DeptDO> getDeptTree();

    /**
     * @Description 根据角色所拥有的部门权限获取不同的部门ID集合
     * @Author YML
     * @Date 2025/5/14
     */
    List<String> getDeptIdsByRolesAndCurrentDeptId(List<String> deptLeveList,List<String> roleList,String deptId);

}
